const Koa = require('koa');
const path = require('path');
const { koaBody } = require('koa-body');
const KoaStatic = require('koa-static');
const parameter = require('koa-parameter');
const cors = require('koa2-cors'); // 引入 koa2-cors 中间件

const router = require('../router/index');
const app = new Koa();

app.use(cors({
    origin: '*', // 允许所有域名的跨域请求，可以根据需要进行配置
    exposeHeaders: ['WWW-Authenticate', 'Server-Authorization'],
    maxAge: 5,
    credentials: true,
    allowMethods: ['GET', 'POST', 'DELETE','PUT'], // 设置所允许的HTTP请求方法
    allowHeaders: ['Content-Type', 'Authorization', 'Accept'], // 设置服务器支持的所有头信息字段
  }));

app.use(koaBody({
    multipart: true,
    formidable: {
        // 这个配置选项中,不能直接使用相对路径,
        // option里面的相对路径不是相对的,是相对于process.cwd()的,不是相对于当前文件
        uploadDir: path.join(__dirname, '../upload'),
        keepExtensions: true,
    }
}));
app.use(KoaStatic(path.join(__dirname, '../upload')));
app.use(parameter(app));

app.use(router.routes()).use(router.allowedMethods()) 
module.exports = app